package com.sf.fy.uav.common.request.order;

import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.math.BigDecimal;

import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;

/**
 * @author LTQ
 */

@Data
@Validated
public class PrepareOrderRequest {


    @ApiModelProperty("起飞航站connId")
    @NotBlank(message = "起飞航站connId不能为空")
    private String takeoffConnId;


    @ApiModelProperty("降落航站connId")
    @NotBlank(message = "降落航站connId不能为空")
    private String landingConnId;


    @ApiModelProperty("寄送者经度")
    @NotBlank(message = "寄送者经度不能为空")
    private String senderLon;

    @ApiModelProperty("寄送者纬度")
    @NotBlank(message = "寄送者纬度不能为空")
    private String senderLat;

    @ApiModelProperty("寄送人地址")
    @NotBlank(message = "寄送人地址不能为空")
    private String senderAddr;

    @ApiModelProperty("寄件人电话")
    @NotBlank(message = "寄件人电话不能为空")
    private String senderTel;

    @ApiModelProperty("寄件人姓名")
    @NotBlank(message = "寄件人姓名不能为空")
    private String senderName;

//    @ApiModelProperty("货物类型，平台组那边要求传1")
//    @NotNull(message = "货物类型不能为空")
//    private Integer goodsType;

    @ApiModelProperty("小程序决定传值策略，丰翼配送小程序为kg,运控平台为g,去运控平台下单时要将kg转换成g")
    @NotNull(message = "货物重量不能为空")
    private double goodsWeight;

    @ApiModelProperty("货物尺寸")
    private String goodsSize;

    @ApiModelProperty("货物体积，单位cm3")
    private String goodsVolume;

    @ApiModelProperty("收件人经度")
    @NotBlank(message = "收件人经度不能为空")
    private String receiverLon;

    @ApiModelProperty("收件人纬度")
    @NotBlank(message = "收件人纬度不能为空")
    private String receiverLat;

    @ApiModelProperty("收件人地址")
    @NotBlank(message = "收件人地址不能为空")
    private String receiverAddr;

    @ApiModelProperty("收件人电话")
    @NotBlank(message = "收件人电话不能为空")
    private String receiverTel;

    @ApiModelProperty("收件人姓名")
    @NotBlank(message = "收件人姓名不能为空")
    private String receiverName;

    @ApiModelProperty("期望送达时间")
    private String expectReceiveTm;

    @ApiModelProperty("期望寄送时间")
    private String expectSendTm;

    @ApiModelProperty("货品类型id")
    @NotBlank(message = "货品类型id不能为空")
    private String goodsTypeId;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("寄送地址名称")
    private String sendAddressName;

    @ApiModelProperty("收件地址名称")
    private String receiveAddressName;

    @ApiModelProperty("收件人区号")
    private String receiverAreaCode;

    @ApiModelProperty("寄件人区号")
    private String senderAreaCode;

    @ApiModelProperty("收件人门牌号")
    private String receiverDoorplate;

    @ApiModelProperty("寄件人门牌号")
    private String senderDoorplate;
    @ApiModelProperty("实际金额")
    @NotNull(message = "实际金额不能为空")
    private BigDecimal price;

    @ApiModelProperty("用户优惠券记录id")
    private String userCouponId;

    @ApiModelProperty("应付金额/原价")
    @NotNull(message = "应付金额/原价不能为空")
    private BigDecimal pricePayable;


    @ApiModelProperty("费用明细id")
    @NotBlank(message = "校验价格的id不能为空")
    private String expenseDetailsId;


    @ApiModelProperty("用于获取openid")
    @NotBlank(message = "loginCode不能为空")
    private String loginCode;


    @ApiModelProperty("0表示小程序，1表示h5")
    private Integer webType;


    @ApiModelProperty("省")
    @NotBlank(message = "寄件人省不能为空")
    private String fromProvince;

    @ApiModelProperty("市")
    @NotBlank(message = "寄件人市不能为空")
    private String fromCity;

    @ApiModelProperty("区")
    @NotBlank(message = "寄件人区不能为空")
    private String fromDistrict;


    @ApiModelProperty("省")
    @NotBlank(message = "收件人省不能为空")
    private String toProvince;

    @ApiModelProperty("市")
    @NotBlank(message = "收件人城市不能为空")
    private String toCity;

    @ApiModelProperty("区")
    @NotBlank(message = "收件人区不能为空")
    private String toDistrict;

    @ApiModelProperty("产品类型")
    @NotNull(message = "产品类型不能为空")
    private Byte productType;

}
